package com.example.searchservice.config;

import com.hankcs.hanlp.corpus.io.IIOAdapter;
import org.springframework.core.io.ClassPathResource;

import java.io.*;

public class HanlpResourceFileIoAdapter implements IIOAdapter {

    @Override
    public InputStream open(String path) throws IOException {
        // 关键：通过 Spring 的 ClassPathResource 获取资源文件的输入流
        // 这允许我们从 jar 包内的 resources 目录读取文件
        ClassPathResource resource = new ClassPathResource(path);
        return resource.getInputStream();
    }

    @Override
    public OutputStream create(String path) throws IOException {
        // 如果你的应用不需要通过 HanLP 动态创建和写入词典文件，可以返回 null 或抛出异常
        // 如果需要写回文件，此实现需谨慎，因为 jar 包内通常不可写
        ClassPathResource resource = new ClassPathResource(path);
        File file = resource.getFile();
        return new FileOutputStream(file);
    }
}